Package com.mincko.minckotest.server

Source Code of com.mincko.minckotest.server.SaveImage

package com.mincko.minckotest.server;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.googlecode.objectify.Objectify;
import com.mincko.minckotest.PMF;
import com.mincko.minckotest.shared.Image;
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
import com.google.gson.Gson;
import java.util.Iterator;
/*import com.google.appengine.api.blobstore.BlobInfo;
import com.google.appengine.api.blobstore.BlobInfoFactory;
import com.google.appengine.api.blobstore.BlobKey;
import com.google.appengine.api.blobstore.BlobstoreService;
import com.google.appengine.api.blobstore.BlobstoreServiceFactory;
import com.google.appengine.api.files.AppEngineFile;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.files.FileServiceFactory;
import com.google.appengine.api.files.FileWriteChannel;
import com.googlecode.objectify.Objectify;
import com.mincko.minckotest.PMF;
import com.mincko.minckotest.shared.Image;
*/
public class SaveImage extends HttpServlet {
  private Objectify ofy;
    public void doPost(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
     
        String strJson = req.getParameter("jsonData");
       
        if(strJson != null){ //update image if the json is not empty.
        String strJsonDel = req.getParameter("jsonDelete");
          Image data;
          //do the delete first
          if(strJsonDel!=null && strJsonDel!=""){
            data = new Gson().fromJson(strJsonDel, Image.class);
            if (ofy == null) ofy = PMF.getObjectify();
            //need to delete blobstoreServic
             BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService();
             for (Iterator<Image> iter = data.getImgList().iterator(); iter.hasNext();) {
               Image img =  ofy.get(Image.class, ((Image) iter.next()).id);
               BlobKey blobKey = new BlobKey(img.blobKey);
               //if(blobKey !=null)
                 //blobstoreService.delete(blobKey);
             }
            ofy.delete(data.getImgList());
          }
         
            data = new Gson().fromJson(strJson, Image.class);
            for (Iterator<Image> iter = data.getImgList().iterator(); iter.hasNext();) {
          Image img = (Image) iter.next();
          saveImageData(img.id, null,null, img.description, img.order );
        }
        }
        else if (req.getParameter("websiteComponentIdentifier") !=null) { //otherwise, add new image
          saveImageData(0,req.getParameter("websiteComponentIdentifier"), req.getParameter("blobkey"), req.getParameter("description"), 0);
        }

//        // Try-out : writing the code to a second blob in blobstore
//        //
//        FileService fileService = FileServiceFactory.getFileService();
//        AppEngineFile file = fileService.createNewBlobFile("image/jpg");
//        // Open a channel to write to it
//        BlobKey bk= new BlobKey( strBlobKey);
//       
//        BlobInfoFactory bif= new BlobInfoFactory();
//        BlobInfo bi= bif.loadBlobInfo( bk);
//        byte [] data = blobstoreService.fetchData( bk, 0, bi.getSize());
//       
//        FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
//        // This time we write to the channel directly
//        writeChannel.write(ByteBuffer.wrap(data));
//        // Now finalize
//        writeChannel.closeFinally();
//       
//        // Now read from the file using the Blobstore API
//        BlobKey blobKey = fileService.getBlobKey(file);
//        //BlobstoreService blobStoreService = BlobstoreServiceFactory.getBlobstoreService();
//        //String segment = new String(blobStoreService.fetchData(blobKey, 30, 40));
//        System.out.println( blobKey.toString());
     

    }
    /*
     * Desc - to save the data, add/update
    */
    public void saveImageData(long id, String websiteComponentIdentifier, String strBlobKey, String strDescription, Integer intOrder) {
     
      if (ofy == null) ofy = PMF.getObjectify();
        Image image;
      //add new image
      if(id == 0) {
            // Save in database
        intOrder = ofy.query(Image.class).filter( "webComponentIdentifier",websiteComponentIdentifier).count()+1;
            image= new Image();
            image.setBlobKey( strBlobKey );
            image.setDescription( strDescription);
            image.setOrder( intOrder);
            image.setWebComponentIdentifier(websiteComponentIdentifier);
           
           
      }else{ //updating the image
        image=  ofy.get(Image.class, id);
            if(strBlobKey !=null) image.setBlobKey( strBlobKey );
            if(strDescription !=null) image.setDescription( strDescription);
            image.setOrder( intOrder);
            if(websiteComponentIdentifier !=null) image.setWebComponentIdentifier(websiteComponentIdentifier);
      }
      //save the image
      ofy.put(image);
    }
}

TOP

Related Classes of com.mincko.minckotest.server.SaveImage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.